<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019\6\9 0009
 * Time: 19:35
 */
namespace BigVideo\IMooc;
/**
 * $object = new \BigVideo\IMooc\Object();
 * //  title  魔术方法  get和set的使用
    $object->title = "hello";
    echo $object->title;
    //魔术方法 call的使用
    $object->test("hello",["你好"]);
    //魔术方法 静态方法 __callStatic 的使用
    $object::text("静态方法",['静态方法']);
    //魔术方法 __toString 输出实体时调用
    echo $object;
    //魔术方法 __invoke 当成函数时调用
    echo $object("invoke");
 * Class Object
 * @package BigVideo\IMooc
 */
class Object
{
    private $array = [];

    public function __set($name, $value)
    {
        $this->array[$name] = $value;
    }

    public function __get($name)
    {
        return $this->array[$name];
    }

    public function __call($name, $arguments)
    {
        var_dump($name,$arguments);
        return "执行call魔术方法";
    }

    static function __callStatic($name, $arguments)
    {
        echo "输出今天方法调用时的魔术方法";
    }

    public function __toString()
    {
        return "输出实体时调用";
    }

    public function __invoke($param)
    {
        var_dump($param);
        return "这是invoke当成函数用时会调用";
    }
}